]> permondes.de Git - Analog_Engine.git/blobdiff - scripts/Damped Harmonic Osciallator scaled.AESL
a rope slides frictionlessly down the edge of a table
[Analog_Engine.git] / scripts / Damped Harmonic Osciallator scaled.AESL
diff --git a/scripts/Damped Harmonic Osciallator scaled.AESL b/scripts/Damped Harmonic Osciallator scaled.AESL
new file mode 100644 (file)
index 0000000..8bae8f3
--- /dev/null
@@ -0,0 +1,41 @@
+IDENTIFICATION DIVISION
+PROGRAM-ID Damped_Oscillator
+
+ENVIRONMENT DIVISION
+ENGINE Anabrid-THAT
+TIMEBASE 1ms
+REQUIRES COEFFICIENT 5
+REQUIRES INTEGRATOR 2
+REQUIRES INVERTER 1
+REQUIRES SUMMER 2
+
+DATA DIVISION
+OUTPUT OUTPUT.U y
+ALIAS COEFFICIENT.1 InitialPosition
+ALIAS COEFFICIENT.2 InitialSpeed
+ALIAS COEFFICIENT.3 SpringForce
+ALIAS COEFFICIENT.4 Damping # linear to speed
+ALIAS COEFFICIENT.5 Mass # 1 / mass
+
+PROGRAM DIVISION
+# Colors being used for wiring
+# - black:  y0
+# - blue:   y0’
+# - green:  y0’’
+# - yellow: y’’, y’
+# - red:    y
+-1 -> InitialPosition -> -y0 # -initial position of the mass
+-1 -> InitialSpeed -> y0s’ # y’ is scaled to be within -1..+1
++1, y0s’, y0s’ -> Summer -> y0’
+
+y’’, IC:y0’ -> INTEGRATOR -> -y’
+-y’,IC:-y0 -> INTEGRATOR -> y
+y -> SpringForce -> S*y # springforce times displacement
+-y’ -> INVERTER -> y’
+y’ -> Damping -> D*y’ # damping times speed
+10:S*y, 10:D*y’ -> SUMMER -> -(Dy’+Sy)
+-(Dy’+Sy) -> Mass -> -1/m*(Dy’+Sy)=y’’
+
+OPERATION DIVISION
+MODE REPEAT
+OP-TIME 57ms